library(ggthemes)
library(tmap)
library(countrycode)

pal = tableau_color_pal(
  palette = "Tableau 10")(10)

data("World")

World = World%>%
  filter(continent!="Antarctica")

World$wb=countrycode(sourcevar = World$iso_a3,
                        origin = "iso3c",
                         destination = "region")
## Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: ATF, ESH, SOL, UNK, XTX
World = World%>%
  filter(!is.na(wb))

tmap_mode("plot")
## tmap mode set to plotting
tm_shape(World) +
    tm_polygons("wb",palette=pal)

load("worldbankindicators.RData") 

tmap_mode("view")
## tmap mode set to interactive viewing
currentdata = worldbank_data%>%
  filter(!is.na(Values))%>%
  filter(year == 2020)%>%
  mutate(iso_a3 = 
           countrycode(sourcevar = .$iso2c,
                        origin = "iso2c",
                         destination = "iso3c"))%>%
  filter(!is.na(iso_a3))
## Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: 1A, 1W, 4E, 7E, 8S, B8, EU, F1, JG, OE, S1, S2, S3, S4, T2, T3, T4, T5, T6, T7, V1, V2, V3, V4, XC, XD, XE, XF, XG, XH, XI, XJ, XK, XL, XM, XN, XO, XP, XQ, XT, XU, Z4, Z7, ZF, ZG, ZH, ZI, ZJ, ZQ, ZT
vars = World%>%left_join(currentdata)
## Joining, by = "iso_a3"
tm_shape(vars) +
    tm_polygons("Values")+
    tm_facets(by = "Indicator",free.scales=TRUE)
## Variable(s) "Values" contains positive and negative values, so midpoint is set to 0. Set midpoint = NA to show the full spectrum of the color palette.
#source("inflationdata.R")
load("inflationdata.RData")

data = data%>%
  mutate(date=as.POSIXct(date))%>%
  mutate(region = countrycode(sourcevar = data$region,
                        origin = "iso3n",
                         destination = "region")
  )%>%
  drop_na()%>%
  group_by(region,`Series Name`,date)%>%
  summarise(value=median(value,na.rm=T))%>%
  drop_na()%>%
  mutate(series = `Series Name`)%>%
  nest(data = -c(region,series))%>% 
  mutate(
    test = map(data, ~ loess(.$value~as.numeric(.$date), span = .5)), # S3 list-col
    tidied = map(test, augment,se.fit=T
    )
  )%>% 
  unnest(c(tidied,data))%>%
  select(-test)%>%
  data.frame()%>%
  mutate(smooth = `.fitted`)
## `summarise()` has grouped output by 'region', 'Series Name'. You can override
## using the `.groups` argument.
alt$data_transformers$disable_max_rows()
## DataTransformerRegistry.enable('default')
selection = alt$selection_multi(fields=list("region"), bind='legend')

chart <-
  alt$Chart(data)$
  encode(
    x = "date:T",
    y = "smooth:Q",
    color="region:N",
    tooltip='date:T',
    opacity=alt$condition(selection, alt$value(1), alt$value(0.2))
  )$
  mark_line()$
  facet('series',columns=2)$
  interactive()$
    add_selection(
    selection
  )

chart